Uncategorized
275 words
Android 11 にアップデートしたら、ストレージアクセスが複雑になった。 ZIP展開して内部ストレージに保存する方法を記載します。 環境 Windows 11 Home 21H2 SDK Version API 30: Android 11.0 (R) 手順プロジェクト作成Empty Activity で試す。 API 30: Android 11.0 (R) を選択 ボタン設定イベント発火用のボタンを付ける。 onClickイベントを設定する。 クリックイベントMainActivity.java に クリックイベント を設定する。 1234567public void btnClick(View view) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("application/zip"); intent.putExt...
Uncategorized
2.7k words
TensorFlowで独自の物体検出 (Object detection) モデルを作ります。 出来上がるまで1ヶ月ほど掛かりました。ホントエラーの連続で大変だった。 今回はポケGOのポケストップを検出するモデルを作って行きます。 最終目標はAndroidで動かすこと! 環境 Windows 11 Home 21H2 Docker 20.10.12 TensorFlow 1.15.2 Python 3.6.9 LabelImg 1.8.1 準備作業用フォルダー作成機械学習させるうえで、たくさんのファイルが必要になります。 手に負えなくなる前にファイルを振り分けていきます。 今回は「📂pokego」という作業用フォルダーを作成し、必要なフォルダーを数個作成しました。 ここまでのフォルダー構成12345678910📂pokego ┣📂Data ┃ ┗📂JPEGImages ┣📂OutputModel ┣📂SaveModel ┗📂VOC2012 ┣📂Annotations ┗📂ImageSets ┗📂Main Dockerコンテナの作成公式のDo...
Uncategorized
224 words
次の方法を用いて、Dockerコンテナ内からローカルファイルにアクセスすることができます。 環境 Windows 11 Home Docker Desktop 手順適当なイメージを用意します。今回は公式のPythonイメージを使ってみます。 1docker pull python まず普通にコンテナを実行して、ファイル一覧を見てみます。 1docker run -it python /bin/bash バインドマウントしてないので、何も変わり無いファイル構成をしています。 バインドマウント続いてローカルフォルダーをバインドマウントして、コンテナー起動してみます。 1docker run -v D:\tensorflow\source:/source -it python /bin/bash 指定したフォルダーが追加されていることが分かります。 もちろん、そのままマウントされたディレクトリに入って、中のファイルを実行することもできます。 おわりにこれでまた、Dockerが使いやすくなったと思います。 参考https://matsuand.github.io/docs...
Uncategorized
581 words
TensorFlow 2によるオブジェクト検出API を試すため、Dockerビルドをしたところエラーに悩まされた。 エラー内容12345678910111213141516171819202122232425262728293031323334353637383940PS D:\tensorflow\models> docker build -f research/object_detection/dockerfiles/tf2/Dockerfile -t od .[+] Building 33.5s (7/16) => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 1.39kB ...
Uncategorized
389 words
を紹介するんですが、残念なお知らせです。 ホントは、Visual Studio のデバッグ実行で、出力ウインドウにログを出したかったんですが出来ませんでした。代替案としてログファイル出力の紹介となります。 供養記事ですね。 環境 Windows 11 Home 21H2 Visual Studio Community 2019 netcoreapp3.1 log4net 2.0.14 設定手順NuGet パッケージインストールNuGet で log4net のパッケージをインストールします。 アプリケーション構成ファイル追加ファイル名は「log4net.config」で新規ファイルを作ります。 次の設定をコピペします。 123456789101112131415161718192021222324252627<?xml version="1.0" encoding="utf-8" ?><configuration> <log4net> <appender name="LogT...
Uncategorized
418 words
環境 Windows 11 Home 21H2 22000.613 Android Studio Bumblebee | 2021.1.1 Patch 1 API 26: Android 8.0 (Oreo) luaj-3.0.1 準備AndroidEmpty Activity で新規プロジェクトを作成しておきます。 Lua次のページ から「luaj-3.0.1.zip」をダウンロードして展開しておきます。 手順AndroidプロジェクトにLuaを導入展開した luaj-3.0.1フォルダーの「lib」フォルダー内に「luaj-jse-3.0.1.jar」があるので、これを Androidプロジェクト の「app > libs」フォルダーにコピペします。 フォルダーにコピペすると、Android Studio の方に Luajライブラリ が表示されます。 そのまま「luaj-jse-3.0.1.jar」を右クリックし「Add As Library」を選択し、Lua を導入します。 Android から Lua実行MainActivity次のコードをコピペして...
Uncategorized
364 words
JSONファイルをBASE64にエンコードして保存したり読み込んだりします。 暗号化までとはいきませんが、技術者じゃないと読めない形にできるので、少し重宝するかもしれません。 保存1234567891011import jsonimport base64data = {'name': 'noita', 'website': 'https://noitaro.github.io'}# BASE64で保存with open('./sample.json', mode='wb') as f: data = json.dumps(data) data = data.encode('utf-8') data = base64.b64encode(data) f.write(data) modemode に w を設定した場合、ファイルが存在しないときは新規作成し、ファイルが存在するときは上書き保存します。 ...
Uncategorized
935 words
Cloud Functions と Firebase Functions って別物だったんですね。知りませんでした。 今回、Python で Functions を作りたかったので、Cloud Functions を使います。 Firebase Functions は JavaScript しか対応していませんでした。 環境 Windows 11 Home 21H2 22000.556 Python 3.10.1 準備Google Cloud SDKCloud Functions の開発には「Google Cloud SDK」のコマンドが必要なのでインストールします。 次のURL から Google Cloud CLI インストーラー をダウンロードします。 https://cloud.google.com/sdk/docs/install-sdk?hl=ja ダウンロードした「GoogleCloudSDKInstaller.exe」をインストールすると開発に必要なコマンドが使えるようになります。 インストール Google Cloud CLI Setup 「All use...
Uncategorized
795 words
Android のカメラを使って、機械学習した物体を検出させます。 今回はサンプルを動かせるようにして、次回は自分で機械学習させたモデルで試してみたいと思います。 環境 Windows 11 Home 21H2 22000.556 Android Studio Bumblebee | 2021.1.1 Patch 1 準備サンプルプロジェクトをダウンロード、展開しておきます。 こちら からサンプルプロジェクトをダウンロード。 ダウンロードできたら展開しておきます。 手順プロジェクトの読み込みAndroid Studio でプロジェクトを読み込みます。 いろいろサンプルがありますが、今回使うサンプルは「object_detection」になります。 展開したフォルダーから次のフォルダーを辿って Androidプロジェクト を選択し開きます。 「.\examples-master\lite\examples\object_detection\android」 プロジェクトを開いた直後はいろいろダウンロードや設定が入るので、右下が落ち着くまでしばらく待ちます。 APKビルド...
Uncategorized
739 words
LINE にメッセージを送ると、同じメッセージが返ってくる LINE BOT を作ります。 環境 Windows 11 Home 21H2 22000.556 node.js v16.13.1 firebase-tools 10.5.0 作成方法チャネルの作成LINE の BOT を作るには LINE が提供している Messaging API を使う必要があります。 Messaging API を使うためにチャネルが必要なので、まずチャネルの作成を行います。 チャネルの作成方法は 公式 が詳しく説明しているので、そちらを参考にして進めるとよいです。 https://developers.line.biz/ja/docs/messaging-api/getting-started/ できたらチャネルの「Messaging API設定」タブを開いて、QRコードから友達登録をしておきます。 チャネルアクセストークンの発行そのまま下にスクロールして、チャネルアクセストークンも発行しておきます。 発行したトークンを使うことで、メッセージが送れるようになります。 Firebase ...